1. Field
The present invention relates to apparatus and methods for displaying graphic information. More particularly, the present invention relates to data processing apparatus and methods for generating and manipulating images and data on a display system.
2. Prior Art
In the computing industry, it is quite common to represent and convey information to a user through graphic representations. These representations may take a variety of forms, such as for example alphanumeric characters, cartesian or other coordinante graphs, as well as shapes of well known physical objects, etc. Historically, humans have interfaced with computers through a system of discrete commands which typically comprise a combination of both text and mathematical symbolic characters. Examples of such systems are numerous and include the programming languages of Fortran, Algol, PL/l, Basic, and Cobol, which transform a given set of user commands into machine executable "object" code.
However, the ease with which a user becomes proficient in programming or interacting with a computer based system is generally a function of how close the system models the logical thought of the user himself. If the user is able to enter commands in the order in which he would find most logically appropriate, rather than having to transpose his desired command into the code of a programming language, greater user effeciency in using the system is achieved.
One system which has been developed to minimize the learning and acclamation period which a user must go through in order to become proficient in the interaction with a computer system is frequently referred to as an "object-oriented" or "Smalltalk" system. The Smalltalk approach is to replace many common coded programming commands with two-dimensional graphics and animation on a computer display. Quantitatively, it has been found that since people readily think in terms of images, a person can absorb and manipulate information presented in a visual context much faster than if represented by text. The particular type of graphic interface by which the user interacts with the machine may vary for any given application.
One common Smalltalk interface approach utilizes multiple "windows" displayed on a cathode ray tube (CRT) in which combinations of text and graphics are used to convey information. For example, each window may take the form of a file folder, of the type used in a standard filing cabinet, overlapping other folders, with the "top" fully visible folder constituting the current workfile. A user may add or delete information from a file, refile the file folder in another location, and generally operate on the file just as if an actual file in an office was being used. Thus, by graphically presenting an image which represents the object of the user's command, and allowing the user to operate on and manipulate the image in substantially the same way he would as if the image constituted the actual object, the machine becomes easier to operate to the user and a stronger man-machine interface is achieved. See, for example, D. Robson, "Object-Oriented Software Systems", BYTE, August 1981, Page 74, Vol. 6, No. 8; and L. Tesler, "The Smalltalk Environment", BYTE, August 1981, page 90, Vol. 6, No. 8.
Although a variety of graphic representations are desired in Smalltalk or other systems, traditionally large amounts of memory have been required in order generate, store and manipulate graphics characters. In its simplest form, a block of memory may be allocated in a data processing storage system with each memory bit (a 1 or 0) mapped onto a corresponding picture element (pixel) on the display system. Thus, an entire CRT screen full of data, in the form of images and/or text, is represented as either a 1 (black dot) or a 0 (white dot) in a block of memory known as a "bitmap". However, the use of a one-to-one correspondance between the bitmap and the CRT display requires a significant amount of storage space within the computer's core memory. In addition, the generation and manipulation of an image or character requires that virtually all bits in the bitmap be updated after any modification to an image or the like. This procedure is both repetitive and time consuming, and significantly hampers the practical use of interactive graphics display operating systems.
One method of providing the necessary graphic capabilities, for systems such as Smalltalk, is "BitBlt" (Bit Boundry Block Transfer) as developed by the Xerox Learning Research Group, Palo Alto Research Center, Palo Alto, Calif. See, D. Ingalls, "The Smalltalk Graphics Kernal," BYTE, page 168, August 1981, Vol. 6 No. 8. BitBlt utilizes regions which are themselves small bitmaps and define simple forms, such as for example an arrow head shaped form to be used as a cursor, a pattern, etc. BitBlt, as will be discussed more fully below, transfers characters from a source bitmap; such as for example a font file of characters, to a destination bitmap (i.e. a block of memory to be displayed on a CRT) at given coordinates. By incorporating the use of a "clipping rectangle" which limits the region of the destination bitmap which can be effected, a portion of a larger scene can be mapped into a window such that only that portion of the transferred scene which falls within the window will be transferred. In addition, a variety of transfer operations are provided which control the combination of a transferred scene or character with an existing scene previously stored at the destination bitmap. However, the BitBlt system is limited in terms of the types of images which can be transferred and manipulated. Specifically, BitBlt is constrained to transfers of rectangular areas. This limitation significantly restricts its use as a graphics tool since BitBlt is thereby unable to transfer data to overlapping windows or the like. In addition, large amounts of memory are required for the BitBlt system. Other limitations in prior art systems, such as BitBlt, are described in this Patent in order to more fully identify the nature of the present invention.
As will be disclosed below, the present invention provides a means whereby any arbitrarily shaped region may be defined and stored using significantly less memory than was previously possible in the prior art. Additionally, the present invention provides a means whereby operations may be performed on regions efficiently and quickly by a digital computer.